package br.com.senac.pi5.dao;

import br.com.senac.pi5.bean.Passageiro;
import br.com.senac.pi5.bean.PedidoCompra;
import br.com.senac.pi5.connection.ConexaoDB;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class PedidoCompraDao {

    static PreparedStatement ps;
    // a conexão com o banco de dados
    private final Connection conexao;

    public PedidoCompraDao() throws SQLException {
        this.conexao = new ConexaoDB().getConexao();
    }

    public String criaPedido(Passageiro passageiro) throws SQLException {

        String numeroPedido = null;
        // prepara a conexão
        String sql = "INSERT INTO PEDIDO_COMPRA (CODIGO_CLIENTE)  VALUES (?)";

        try (PreparedStatement stmt = conexao.prepareStatement(sql)) {
            stmt.setString(1, passageiro.getCodigo());

            //Executa o código SQL
            stmt.execute();
            stmt.close();
        }

        sql = "SELECT max(CODIGO) as CODIGO FROM PEDIDO_COMPRA where CODIGO_CLIENTE = " + passageiro.getCodigo();

        PreparedStatement preparedStatement = conexao.prepareStatement(sql);
        ResultSet rs = preparedStatement.executeQuery(sql);

        while (rs.next()) {
            numeroPedido = rs.getString("CODIGO");
        }

        return numeroPedido;
    }

    public PedidoCompra buscaPedido(String codigo) throws SQLException {

        String sql = "SELECT * FROM PEDIDO_COMPRA where CODIGO = " + codigo;

        PreparedStatement preparedStatement = conexao.prepareStatement(sql);
        ResultSet rs = preparedStatement.executeQuery(sql);

        PedidoCompra pedidoCompra = new PedidoCompra();

        while (rs.next()) {
            pedidoCompra.setCodigo(Integer.parseInt(rs.getString("CODIGO")));
            pedidoCompra.setCodigoCliente(Integer.parseInt(rs.getString("CODIGO_CLIENTE")));
        }

        return pedidoCompra;
    }
}
